package com.kklsqm.langchain4j.assistant;

import dev.langchain4j.service.Result;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;

import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT;

/**
 * 功能:
 * 作者: 沙琪马
 * 日期: 2025/4/25 21:07
 */
@AiService(
        wiringMode = EXPLICIT,
        chatModel = "tongYiChatModel"
)
public interface QwenAssistant {

    @UserMessage("请对以下文本进行专业润色，保持原意但提升表达质量：{{userMessage}}，你只需要返回润色的内容即可")
    String chat(@V("userMessage") String userMessage);

    @UserMessage("请对以下文本进行专业润色，保持原意但提升表达质量：{{userMessage}}，你只需要返回{{extraInfo}}的内容即可")
    String extraInfoChat(@V("userMessage") String userMessage, @V("extraInfo") String extraInfo);

    @UserMessage("请根据以下要求生成{{platform}}文案：{{userMessage}}。要求：风格-{{style}}，字数-{{wordCount}}，关键点-{{keyPoints}}，表情符号：是否添加{{emoji}}。只需返回文案内容。")
    String generateCopywriting(
            @V("platform") String platform,
            @V("userMessage") String userMessage,
            @V("style") String style,
            @V("wordCount") String wordCount,
            @V("keyPoints") String keyPoints,
            @V("emoji") Boolean emoji
    );

    /**
     * 判断购买意图
     * @param product 产品
     * @param comment 评论
     * @return 评论等级和回复话术
     */
    @SystemMessage(fromResource = "prompt/intent-message.txt")
    @UserMessage(fromResource = "prompt/intentuser-message.txt")
    Result<String> JudgeBuyIntent(@V("product") String product, @V("comment")  String comment);

}
